<?php


require_once 'SF/SFpersonne.php';
require_once 'SC/SCrole.php';
require_once "classes/Personne.php";
require_once 'config.php';
/**
 * Classe permettant de gérer les metier du service Applicatif Personne 
 */
class SApersonne {
    

    /**
     * Methode pour ajouter une personne à la BD
     * @param Personne Personne a mémoriser
     * @return Personne PersonneMémorisée
     */
    public function ajouter(Personne $unePersonneAAjouter, Adresse $adresse, $adresse_type, Localite $localite, Region $region, $pays, $role) {
        $unePersonneMemorisee=NULL;
            $unePersonne = new SFpersonne();    
            $unePersonneMemorisee=$unePersonne->ajouter($unePersonneAAjouter, $adresse, $adresse_type, $localite, $region, $pays, $role);

        return $unePersonneMemorisee;
    }
    /**
     *  Methode pour modifier une personne
     * @param Personne Objet personne à modifier
     * @return Personne personne modifiée
     */
    public function modifier(Personne $unePersonneAModifier) {
        $unePersonneModifiee=NULL;
       
            $SFPersonne = new SFpersonne();    
            $unePersonneModifiee=$SFPersonne->modifier($unePersonneAModifier);

        return $unePersonneModifiee;
    }
    /**
     * Methode pour lister les Personne selon les critères séléctionnée
     * @param Peronne Personne à lister
     * @return array Tableau de personne
     */
    public function lister(Personne $personneARechercher) {

        $SFpersonne = new SFpersonne();
        return $listePersonnes = $SFpersonne->lister($personneARechercher);

    }
    /**
     * Methode pour lister les des personnes
     * @param Peronne Personne à lister les roles
     * @return array Tableau de role
     */
    public function listerRole(Personne $personneARechercher) {

        $SFpersonne = new SFpersonne();
        return $listePersonnes = $SFpersonne->listerRole($personneARechercher);

    }
    
     /**
     * Methode pour lister tout les roles
     * @return array Tableau de role
     */
    public function listerToutLesRole($roleAlister) {

        $SCrole = new SCrole();
        return $listePersonnes = $SCrole->lister($roleAlister);

    }
    
     /**
     * Methode pour lister tout les adresse d'une personne
     * @return array Tableau de Adresse
     */
    public function listerAdresse(Personne $personne) {

        $SFpersonne = new SFpersonne();
        return $listePersonnes = $SFpersonne->listerAdresse($personne);

    }
    
    public function supprimerPersonne(Personne $personne) {

        $SFpersonne = new SFpersonne();
        $SFpersonne->supprimer($personne);

    }

}
?>
